
const app = getApp()

Page({
  data: {
    region: ['浙江省', '杭州市', '上城区', ''],
    streetInput: '丁兰街道',
    visibility: {
      province: false,
      city: false,
      district: true,
      street: true
    }
  },

  onLoad() {
    // 从全局获取已保存的地址信息
    if (app.globalData.userInfo.address) {
      this.setData({
        region: app.globalData.userInfo.address.region,
        streetInput: app.globalData.userInfo.address.streetInput,
        visibility: app.globalData.userInfo.address.visibility
      })
    }
  },

  // 地区选择变化
  onRegionChange(e) {
    this.setData({
      region: e.detail.value
    })
  },

  // 街道输入变化
  onStreetInput(e) {
    this.setData({
      streetInput: e.detail.value
    })
  },

  // 可见性设置变化
  onVisibilityChange(e) {
    const { type } = e.currentTarget.dataset
    const { visibility } = this.data
    
    // 获取新的开关状态
    const newValue = !visibility[type]
    
    // 更新当前开关状态
    visibility[type] = newValue
    
    // 级联逻辑：当低级别设置为不可见时，自动将高级别也设置为不可见
    // 级别说明：街道(1) < 区县(2) < 市(3) < 省(4)
    if (type === 'street' && !newValue) {
      // 当街道级别设置为不可见时，自动将区县、市、省级别也设置为不可见
      visibility.district = false
      visibility.city = false
      visibility.province = false
    } else if (type === 'district' && !newValue) {
      // 当区县级别设置为不可见时，自动将市、省级别也设置为不可见
      visibility.city = false
      visibility.province = false
    } else if (type === 'city' && !newValue) {
      // 当市级别设置为不可见时，自动将省级别也设置为不可见
      visibility.province = false
    }
    // 注意：当province关闭时，不影响其他级别（因为它是最高级别）

    this.setData({ visibility })
  },

  // 保存地址信息
  saveAddress() {
    if (!this.data.region[0] || !this.data.region[1] || !this.data.region[2]) {
      wx.showToast({
        title: '请至少选择省市区',
        icon: 'none'
      })
      return
    }

    // 保存到全局数据
    app.globalData.userInfo.address = {
      region: this.data.region,
      streetInput: this.data.streetInput,
      visibility: this.data.visibility
    }

    // 跳转到主页面
    wx.switchTab({
      url: '/pages/index/index'
    })
  }
})